home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / pango-1.0 / pango / pango-ot.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-04-25  |  4.1 KB  |  122 lines

  1. /* Pango
  2.  * pango-ot.h:
  3.  *
  4.  * Copyright (C) 2000 Red Hat Software
  5.  *
  6.  * This library is free software; you can redistribute it and/or
  7.  * modify it under the terms of the GNU Library General Public
  8.  * License as published by the Free Software Foundation; either
  9.  * version 2 of the License, or (at your option) any later version.
  10.  *
  11.  * This library is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.     See the GNU
  14.  * Library General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU Library General Public
  17.  * License along with this library; if not, write to the
  18.  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  19.  * Boston, MA 02111-1307, USA.
  20.  */
  21.  
  22. #ifndef __PANGO_OT_H__
  23. #define __PANGO_OT_H__
  24.  
  25. #include <pango/pangofc-font.h>
  26. #include <pango/pango-glyph.h>
  27. #include <pango/pango-font.h>
  28.  
  29. G_BEGIN_DECLS
  30.  
  31. #ifdef PANGO_ENABLE_ENGINE
  32.  
  33. typedef guint32  PangoOTTag;
  34.  
  35. typedef struct _PangoOTInfo    PangoOTInfo;
  36. typedef struct _PangoOTBuffer  PangoOTBuffer;
  37. typedef struct _PangoOTGlyph   PangoOTGlyph;
  38. typedef struct _PangoOTRuleset PangoOTRuleset;
  39.  
  40. typedef enum 
  41. {
  42.   PANGO_OT_TABLE_GSUB,
  43.   PANGO_OT_TABLE_GPOS
  44. } PangoOTTableType;
  45.  
  46. /* Note that this much match OTLGlyphItem */
  47. struct _PangoOTGlyph
  48. {
  49.   guint    glyph;
  50.   guint    properties;
  51.   guint    cluster;
  52.   gushort  component;
  53.   gushort  ligID;
  54.   gushort  property_cache;    /* Internal */
  55. };
  56.  
  57. PangoOTInfo *pango_ot_info_get (FT_Face face);
  58.  
  59. gboolean pango_ot_info_find_script   (PangoOTInfo      *info,
  60.                       PangoOTTableType  table_type,
  61.                       PangoOTTag        script_tag,
  62.                       guint            *script_index);
  63. gboolean pango_ot_info_find_language (PangoOTInfo      *info,
  64.                       PangoOTTableType  table_type,
  65.                       guint             script_index,
  66.                       PangoOTTag        language_tag,
  67.                       guint            *language_index,
  68.                       guint            *required_feature_index);
  69. gboolean pango_ot_info_find_feature  (PangoOTInfo      *info,
  70.                       PangoOTTableType  table_type,
  71.                       PangoOTTag        feature_tag,
  72.                       guint             script_index,
  73.                       guint             language_index,
  74.                       guint            *feature_index);
  75.  
  76. PangoOTTag *pango_ot_info_list_scripts   (PangoOTInfo      *info,
  77.                       PangoOTTableType  table_type);
  78. PangoOTTag *pango_ot_info_list_languages (PangoOTInfo      *info,
  79.                       PangoOTTableType  table_type,
  80.                       guint             script_index,
  81.                       PangoOTTag        language_tag);
  82. PangoOTTag *pango_ot_info_list_features  (PangoOTInfo      *info,
  83.                       PangoOTTableType  table_type,
  84.                       PangoOTTag        tag,
  85.                       guint             script_index,
  86.                       guint             language_index);
  87.  
  88. PangoOTBuffer *pango_ot_buffer_new        (PangoFcFont       *font);
  89. void           pango_ot_buffer_destroy    (PangoOTBuffer     *buffer);
  90. void           pango_ot_buffer_clear      (PangoOTBuffer     *buffer);
  91. void           pango_ot_buffer_set_rtl    (PangoOTBuffer     *buffer,
  92.                        gboolean           rtl);
  93. void           pango_ot_buffer_add_glyph  (PangoOTBuffer     *buffer,
  94.                        guint              glyph,
  95.                        guint              properties,
  96.                        guint              cluster);
  97. void           pango_ot_buffer_get_glyphs (PangoOTBuffer     *buffer,
  98.                        PangoOTGlyph     **glyphs,
  99.                        int               *n_glyphs);
  100. void           pango_ot_buffer_output     (PangoOTBuffer     *buffer,
  101.                        PangoGlyphString  *glyphs);
  102.  
  103. void           pango_ot_buffer_set_zero_width_marks (PangoOTBuffer     *buffer,
  104.                              gboolean           zero_width_marks);
  105.  
  106. PangoOTRuleset *pango_ot_ruleset_new (PangoOTInfo       *info);
  107.  
  108. void            pango_ot_ruleset_add_feature (PangoOTRuleset   *ruleset,
  109.                           PangoOTTableType  table_type,
  110.                           guint             feature_index,
  111.                           gulong            property_bit);
  112. void            pango_ot_ruleset_substitute  (PangoOTRuleset   *ruleset,
  113.                           PangoOTBuffer    *buffer);
  114. void            pango_ot_ruleset_position    (PangoOTRuleset   *ruleset,
  115.                           PangoOTBuffer    *buffer);
  116.  
  117. #endif /* PANGO_ENABLE_ENGINE */
  118.  
  119. G_END_DECLS
  120.  
  121. #endif /* __PANGO_OT_H__ */
  122.